package com.jhclothing.product.service;

import com.jhclothing.product.domain.ClothingInventory;

import java.util.List;

/**
 * 服饰库存Service接口
 *
 * @author zyp
 * @date 2024-04-24
 */
public interface IClothingInventoryService {
    /**
     * 查询服饰库存
     *
     * @param clothingInventoryId 服饰库存主键
     * @return 服饰库存
     */
    public ClothingInventory selectClothingInventoryByClothingInventoryId(Long clothingInventoryId);

    /**
     * 查询服饰库存列表
     *
     * @param clothingInventory 服饰库存
     * @return 服饰库存集合
     */
    public List<ClothingInventory> selectClothingInventoryList(ClothingInventory clothingInventory);

    /**
     * 查询服饰品类+服饰尺码的产品是否唯一
     *
     * @param clothingInventory 服饰库存信息
     * @return true，唯一   false，不唯一
     */
    public boolean checkClothingTypeAndSizeUnique(ClothingInventory clothingInventory);

    /**
     * 根据服饰品类ID + 服饰尺码查询服饰库存
     *
     * @param clothingTypeId 服饰品类ID
     * @param clothingSize   服饰尺码
     * @return 服饰库存
     */
    public ClothingInventory selectClothingInventoryByClothingTypeAndSize(Long clothingTypeId, String clothingSize);


    /**
     * 新增服饰库存
     *
     * @param clothingInventory 服饰库存
     * @return 结果
     */
    public int insertClothingInventory(ClothingInventory clothingInventory);

    /**
     * 修改服饰库存
     *
     * @param clothingInventory 服饰库存
     * @return 结果
     */
    public int updateClothingInventory(ClothingInventory clothingInventory);

    /**
     * 更新服饰库存
     *
     * @param clothingInventoryId 服饰库存ID
     * @param nowInventory        服饰库存
     * @param updateBy            更新者
     * @return 结果
     */
    public int updateClothingInventory(Long clothingInventoryId, Integer nowInventory, String updateBy);

    /**
     * 批量删除服饰库存
     *
     * @param clothingInventoryIds 需要删除的服饰库存主键集合
     * @return 结果
     */
    public int deleteClothingInventoryByClothingInventoryIds(Long[] clothingInventoryIds);

    /**
     * 删除服饰库存信息
     *
     * @param clothingInventoryId 服饰库存主键
     * @return 结果
     */
    public int deleteClothingInventoryByClothingInventoryId(Long clothingInventoryId);

}
